package io.github.maojian.str;

import org.junit.Test;

/**
 * 1422. 分割字符串的最大得分
 * 给你一个由若干 0 和 1 组成的字符串 s ，请你计算并返回将该字符串分割成两个 非空 子字符串（即 左 子字符串和 右 子字符串）所能获得的最大得分。
 *
 * 「分割字符串的得分」为 左 子字符串中 0 的数量加上 右 子字符串中 1 的数量。
 *
 */
public class Q1422 {
    public int maxScore(String s) {
        int oneCount = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '1') {
                oneCount++;
            }
        }
        int sum = 0;
        int zeroCount = 0;
        for (int i = 0; i < s.length()-1; i++) {
            char curC = s.charAt(i);
            if (curC == '1') {
                oneCount--;
            }else {
                zeroCount++;
            }
            sum = Math.max(sum, zeroCount + oneCount);
        }
        return sum;
    }

    @Test
    public void test() {
        String s = "011101";
        System.out.println(maxScore(s));
    }
}
